import { NextRequest, NextResponse } from 'next/server';

// 模拟的鼓励师回复数据
const mockResponses = {
  sheldon: [
    "嗯，很有趣的问题。从物理学角度来看，bug就像是量子力学中的不确定性原理 - 你越是想确定它的位置，它的动量就越不确定。但是，根据我的计算，你有99.7%的概率能够解决这个问题。Bazinga！记住，即使是爱因斯坦也会犯计算错误。",
    " fascinating！你遇到了一个典型的递归问题。你以为你在调试代码，实际上代码在调试你。这就像薛定谔的猫，在你观察之前，这个bug既存在又不存在。我的建议是：采用科学方法，假设、实验、验证。或者，你可以干脆叫上莱纳德一起去喝杯咖啡。",
    "根据我的IQ分析，你遇到的这个问题实际上是对你智力的一次考验。你看，我187的智商让我能够理解多维弦理论，而你只是遇到了几个小小的bug。相比之下，你的问题简直就像1+1=2一样简单。所以，停止抱怨，开始调试吧！Bazinga！"
  ],
  confucius: [
    "后生莫慌，编程之道，亦如求学之道。子曰：'学而时习之，不亦说乎？'遇bug而困，乃学者常情。古之学者，为求一字之师，尚能千里跋涉，今有网络为伴，何愁难题不解？吾劝汝静心以对，如切如磋，如琢如磨，终有所成。",
    "三人行，必有我师焉。你写代码遇困，此乃学习之良机。孔子曰：'知之为知之，不知为不知，是知也。'承认不解，方为智慧之始。观他人之解法，问前辈之经验，如此，则bug之困，亦成进德修业之阶梯。望汝戒骄戒躁，循序渐进。",
    "学而不思则罔，思而不学则殆。编程亦然，只写不思，则易生bug；只思不写，则终为纸上谈兵。今汝遇此困难，恰是反思之机。何不暂停片刻，审视代码之逻辑，如孔子温故而知新，必有新得。记住：'工欲善其事，必先利其器。'"
  ],
  guo: [
    "哎哟喂，您说这代码有bug，这不新鲜嘛！我跟您说，写代码这玩意儿，就跟说相声似的，包袱抖不好，底下观众不乐。您这bug啊，就是包袱没抖响。没事儿，咱慢慢来，实在不行，咱换一个包袱！嘛钱不钱的，乐呵乐呵得了！",
    "您这情况我懂，就跟我们说相声似的，有时候一个词儿说错了，整段都垮了。代码也是这个理儿，一行不对，全盘皆输。但是您想啊，德云社这么多演员，哪个没说过错词儿？关键是得有勇气承认，然后改正。实在不行，咱就把这bug当成一个新包袱，抖出来给大家乐呵乐呵！",
    "我跟您说，写代码这活儿，真不是说相声那么简单。说相声，底下观众乐了，就成了；写代码，电脑不乐，你就没完。但是您想啊，郭德纲能有今天，也是被观众骂出来的。您这些bug，就是您的观众，它们在骂您呢！嘛钱不钱的，乐呵乐呵得了，改完代码，咱去喝两杯！"
  ]
};

export async function POST(request: NextRequest) {
  try {
    const body = await request.json();
    const { mentorId, userInput } = body;

    if (!mentorId || !userInput) {
      return NextResponse.json(
        { error: '缺少必要参数' },
        { status: 400 }
      );
    }

    // 模拟处理时间
    await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 2000));

    // 获取对应的鼓励师回复
    const responses = mockResponses[mentorId as keyof typeof mockResponses];
    if (!responses) {
      return NextResponse.json(
        { error: '未找到对应的鼓励师' },
        { status: 404 }
      );
    }

    // 随机选择一个回复
    const randomReply = responses[Math.floor(Math.random() * responses.length)];

    const mentorNames = {
      sheldon: '谢耳朵',
      confucius: '孔子',
      guo: '郭德纲'
    };

    console.log('模拟API调用成功:', { mentorId, mentor: mentorNames[mentorId as keyof typeof mentorNames] });

    return NextResponse.json({
      success: true,
      reply: randomReply,
      mentor: mentorNames[mentorId as keyof typeof mentorNames],
      isMock: true // 标识这是模拟回复
    });

  } catch (error) {
    console.error('模拟API调用失败:', error);

    return NextResponse.json(
      {
        success: false,
        error: '服务器内部错误'
      },
      { status: 500 }
    );
  }
}